package com.burst.reptile.common.utils.zp;

import java.util.ArrayList;
import java.util.List;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import cn.hutool.http.HtmlUtil;

/**
 * HTML 工具类
 * @author wujin
 *
 * @date: 2020年6月18日 下午12:23:52
 */
public class HtmlUtils extends HtmlUtil{

	/**
	 * 提取img标签的src属性值
	 * @param html html文本
	 * @return
	 */
	public static List<String> getImgs(String html){
		Document doc = Jsoup.parse(html);
		Elements elements = doc.select("img[src]"); // 获取到的值为所有的<img src="...">
		List<String> list = new ArrayList<>();
		for (Element element : elements) {
		    String src = element.attr("src"); // 获取到src的值
		    list.add(src);
		}
		return list;
	}
	
	/**
	 * 提取video标签的src属性值
	 * @param html html文本
	 * @return
	 */
	public static List<String> getVideo(String html){
		Document doc = Jsoup.parse(html);
		Elements elements = doc.select("source[src]"); // 获取到的值为所有的<source src="...">
		List<String> list = new ArrayList<>();
		for (Element element : elements) {
		    String src = element.attr("src"); // 获取到src的值
		    list.add(src);
		}
		return list;
	}
	
	/**
	 * 移除video标签的width、height属性值
	 * @param html html文本
	 * @return
	 */
	public static String removeVideoAttr(String html){
		Document doc = Jsoup.parse(html);
		Elements elements = doc.select("video"); // 获取到的值为所有的<video src="...">
		for (Element element : elements) {
		    element.removeAttr("width")
		    .removeAttr("height")
		    .removeAttr("poster");
		}
		String string = doc.body().toString();
		html = removeHtmlTag(string, false, "body");
		return html;
	}
	
	/**
	 * 提取video标签的poster属性值
	 * @param html html文本
	 * @return
	 */
	public static List<String> getVideoPoster(String html){
		Document doc = Jsoup.parse(html);
		Elements elements = doc.select("video[poster]"); // 获取到的值为所有的<video poster	="...">
		List<String> list = new ArrayList<>();
		for (Element element : elements) {
		    String src = element.attr("poster"); // 获取到poster的值
		    list.add(src);
		}
		return list;
	}
	
	
	/**
	 * 提取video标签的id属性值
	 * @param html html文本
	 * @return
	 */
	public static List<String> getVideoEtag(String html){
		Document doc = Jsoup.parse(html);
		Elements elements = doc.select("video[id]"); // 获取到的值为所有的<video id="...">
		List<String> list = new ArrayList<>();
		for (Element element : elements) {
		    String id = element.attr("id"); // 获取到poster的值
		    list.add(id);
		}
		return list;
	}
}
